package com.ocean.product.service;

import java.util.List;
import java.util.Map;

import com.ocean.common.core.page.ForeResult;
import com.ocean.product.domain.OProduct;
import com.ocean.system.domain.OZnwgSq;

/**
 * 产品类别Service接口
 *
 * @author ocean
 * @date 2023-01-05
 */
public interface IOProductService
{
    /**
     * 查询产品类别
     *
     * @param id 产品类别主键
     * @return 产品类别
     */
    public OProduct selectOProductById(String id);

    /**
     * 查询产品类别列表
     *
     * @param oProduct 产品类别
     * @return 产品类别集合
     */
    public List<OProduct> selectOProductList(OProduct oProduct);

    /**
     * 新增产品类别
     *
     * @param oProduct 产品类别
     * @return 结果
     */
    public int insertOProduct(OProduct oProduct);

    /**
     * 修改产品类别
     *
     * @param oProduct 产品类别
     * @return 结果
     */
    public int updateOProduct(OProduct oProduct);

    /**
     * 批量删除产品类别
     *
     * @param ids 需要删除的产品类别主键集合
     * @return 结果
     */
    public int deleteOProductByIds(String ids);

    /**
     * 删除产品类别信息
     *
     * @param id 产品类别主键
     * @return 结果
     */
    public int deleteOProductById(String id);

    /**
     * 查询列表
     * @param oProduct
     * @return
     */
    List<OProduct> selectFormList(OProduct oProduct);

    void checkNcFile();

    void checkSubscribeTime();

    List<Map> checkNotUpdateProduct();

    void checkLateTransmission() throws Exception;

    void checkRepairTransmission();

    Map<String, List<String>> selectTypeAndDeptIsOpen();
//    List<Map<String, Object>> selectTypeAndDeptIsOpen();

    Map<String, Map<String, List<String>>> selectTypeAndDeptIsOpenLoggedIn();

    ForeResult getProduct(String productType, String depart, String oceanArea, String element, String mode, int currentPage);

    String downLoad(String fileId);

    List<OProduct> isjc(String pname);

    List<OProduct> getnamegz(String pname);

    List<OProduct> selectFormListsms(OProduct oProduct);

    List<OZnwgSq> selectFormListsmsznwg(OZnwgSq oZnwgSq);

    List<OZnwgSq> selectFormListznwg();
}
